- web6047 - (2021/09/10(金) 現在、システム調整中のため、一部の表示がおかしいかもしれません)

今月の冒頭コンテンツは、

PC-9801「XakII」よりオープニングタイトル のパロディでした。

画像を上からだんだん表示していき、その過程で最下部の1ラインを底辺へ向けて垂れ流すように複写する。それが画像の一番下の白いメーカー表示に差し掛かったとき、チョロチョロっとして少し面白い印象を受けます。

当時初めて見たときは「いったいどうやっているのか」と驚かされました。

当時のPCゲームソフト業界はFalcomに追いつこうとするいくつかのメーカーが 結構頑張っていましたね。

INT TRAP HALT(PC-98という昔のパソコンでプログラムが不正動作した際にこの表示が出る。リセットするしかない状態)で終わるというのは、終わり方としてはあり得るので いいんじゃないかと…


それからこういったパロディが法的に許されるかどうかについて、いつものように調べてみましたが、たぶん大丈夫でしょう。

  • 元作品(XakII)とこのパロディ作品(タイトルのマネ)が明瞭に区別されている。
  • 元作品とこのパロディ作品のあいだに主従関係がある。(横の並びではない)
  • このパロディ作品は少部数(homepage6047は人気がない)で商業的な影響も少ない

とはいえ、もし、元作品の著作者の方が「嫌です」と言った場合はこの限りではないとも思います。

相手の立場になって考えてこのパロディを吟味もしているので大丈夫かなと思います。

2020年7月10日追記:上記箇条書きは、改めて調べたところ「パロディ」ではなく「引用」に関する内容でした。間違っていてすみません。しかし、パロディにおいてもこの箇条書きの内容はそこそこ当てはまりそうな気もします。(もとはWikipedia「パロディ事件」のページを読んで参考にしてしまったのが間違いのきっかけです) さらに調べてみると、パロディというのは法律としては明確な記述がなく、「パロディ文化を委縮させないためにも法律に記述しないほうが良い」とも言われているようです。

要は他の法律にも言えそうですが、相手の人の立場を無視した身勝手な行動になっていると問題として表面化するのだと思います。

私のこのパロディについては、元作品はそれなりに古い作品であり、私に悪気はなく、このホームページ自体多くの人に見られているわけでもない、相手の人は悪い気分にはならないだろうと相手の立場になって検討もしている、ということで、だいたい大丈夫なんじゃないかと結論します。

もう一度見る

homepage6047 2019年 4月

プログラミングやRPG(作るほう)が好きな人の日記

2019/4/29(月) GW3日目

映画「アナイアレイション -全滅領域-」 -[eiga]

2018年アメリカ/SF・ファンタジー/1:55/評価:私★★☆☆☆、公★★★☆☆

iTunesで観ました。リンク

予告編を見たり、ナタリー・ポートマンが出てるってことで、面白いかなと思ってみたんですが、

1980年代のハリウッド映画を楽しんできた私としては、なんかイマイチでした。

終わり方さえ良ければ★3くらいは行けたはず。

でも、まぁ、途中で見るのやめようかなとは思わなかったし、落第の映画ではないとは思います。


3DCGモデリング ~ Chapter03 - Lesson1 まぶたを二重にする -[modeling]

二重まぶたの、なし、薄め、厚め で印象がかなり異なります。

▼二重まぶた なし

日本人風でこれはこれでかわいいとされる

▼二重まぶた 薄め

なしに比べてぱっちりとした印象になる

▼二重まぶた 厚め

本のとおりに進めるとこうなる

真ん中を採用しておきます。


▼髪を分けました。可憐になってきたなぁ。

ピクチャ_ペン画風 写真手法_クロス 写真手法_ソフトフォーカス 写真手法_逆光 輪郭処理_輪郭抽出+グレー化 階調補正_減色処理_Webカラー誤差拡散 階調補正_2階調化_ディザ+カラー 階調補正_2階調化_単純2値 階調補正_2階調化_誤差拡散 4

YouTube のソーサリアンの初音ミクアレンジの動画(リンク)で画面を「ディザ」処理していたのが面白かったので、自分でも画像処理でやってみたところ、ほかの画像処理も試して遊んでしまいました。(ボタンは画像のリンク先も変わります)

3DCG を本物っぽく作っただけあって、画像処理すると、どっかで見たような画になるなぁ、と思いました。

画像処理ソフトは Paintgraphic4 Pro です。


2019/4/28(日) GW2日目

3DCGモデリング ~ Chapter02 フェイス基礎 の終了 -[modeling]

キャラクターモデリング造形力矯正バイブル第2版」(リンクはアマゾン)を読み進めて ひと段落しました。


▼私がShadeで作ったモデル

▼本のモデル(Maya)


「自分で実物を見て形を判断する「目」を鍛えなさい」と本では繰り返し言っていて、それはよくわかるんですが、ついつい本のモデルのポリゴンの流ればかりを見て、実物はあまり見ないで本のモデルにそっくり似せるように作ってしまいました。

でもけっこう勉強になりました。

この本は Maya を使ってモデリングの説明をしていますが、私は Shade3D Ver17 Basic を使い、Maya に似た機能を Shade の中から探しながら、モデルを作っています。


Maya と Shade の差異で特に困る点:

Shade にあって良かった機能:


現時点で髪の毛をかぶせるとこんな感じ↓ もともとは、人体のモデリングを適当に作っていたとき、腕や胴体はホントの適当で直方体でなんとかなったけど、頭だけは球にしても楕円球にしてもしっくりこなくて、どういう形にすればいいのか…と悩んでいて、それでモデリングの本を買ったんでした。本当はリアルな 3DCG をやりたいとは思ってなかったんですよね。

この画像は実物(自分の顔や資料)も本もみないで、自分の空想でいじった部分がちょっとあるので、その分少し変に感じるかもしれません。(特に目の微調整と、鼻の微調整は空想でやってしまいました)


このあとは、

などが続きます。


(訪問者のどんなニーズと この記事がつながるか)


2019/4/27(土) GW1日目

コンピューターはどうやって足し算しているの?

せっかくGW(ゴールデンウィーク)に入ったので、ちょっと勉強することにしました。

情報系の本を3冊ほど、私の埋蔵図書館(買ったけど読んでいない本が数冊)からみつくろって、トライすることにします。(3日坊主にならなければいいけど)

今日は「アセンブリ言語ハンドブック」の小題「コンピュータはどうやって足し算しているの?」(P14)。

コンピュータに足し算をさせるとき、コンピュータは内部でどんな動きをしているのか、という話です。


AND や OR などの論理回路の組み合わせで足し算をしている

本の小題「コンピュータはどうやって足し算しているの?」では、AND とか OR を使った回路図が出てきます。

それを見るだけでもわからないでもないのですが、よく理解するためには実験をしたほうが良いと思います。

でも実際に電子回路を組むのは面倒なので、プログラムで電子回路を模してやってみることにしました。


下記のプログラムを JavaScript で実行

実行すると、どんなに大きな数字でも ちゃんと正確に足し算してくれます。


下記 harfAdder 関数と fullAdder 関数を見てもらうと、AND とか OR など論理回路だけで成り立っているのがわかると思います。

コンピューターの足し算は、AND や OR などの論理回路の組み合わせで できているんです。


<!DOCTYPE html>

<head>

<title>UntitledHomepage6047Document</title>

<meta content="text/html; charset=UTF-8" http-equiv="content-type">

<script>console.clear();</script>

<!--script srcを入れる場合はここに-->

<script>

/*

コンピューターはどうやって足し算しているの?


コンピューターは「全加算器」という電子回路で足し算をしていますが、

「全加算器」は、「半加算器」と「OR回路」できています。

さらに「半加算器」は、「AND回路」と「OR回路」と「NOTゲート(1と0を反転)」でできています。

そして「AND回路」は「スイッチの直列つなぎの回路」なのであって、

「OR回路」は「スイッチの並列つなぎの回路」です。

「NOTゲート」は1と0を反転する回路です。


このプログラムリストは、足し算を行う「全加算器」を分解していくと単なるスイッチの組み合わせに行きつく、ということを観察するためのプログラムリストです。


テストの数値をどんな数値にしても正しく計算してくれます。

*/


//- 関数リスト - ..

// 1: printLn .. 画面出力

// 2: onloadx .. プログラムの開始

// 3: adder .. 全加算器を使って足し算を実行する

// 4: andKairo .. AND回路はスイッチを直列につなげた回路である

// 5: orKairo .. OR回路はスイッチを並列につなげた回路である

// 6: notGate .. NOTゲート(1と0を反転)

// 7: halfAdder .. 半加算器は、AND回路、OR回路とNOTゲートで構成されている。

// 8: fullAdder .. 全加算器は、半加算器とOR回路で構成されている。



/*

このスクリプトは特に著作権その他の権利を主張しませんので、気にせず自由に使ってください。


スクリプトの作者:homepage6047 d_kawakawaより

*/


//画面出力

//関数 1 / 8 ..

function printLn() {

for( var i = 0; i < arguments.length; i++ ) {

document.body.innerHTML += arguments[ i ] + " ";

}

document.body.innerHTML += "<BR>\n";

}


//プログラムの開始

//関数 2 / 8 ..

function onloadx() {

console.log( "onload()" );


//テストの実行


var x10 = 1231232;

var y10 = 12312312;


printLn( "普通の計算結果:", x10, "+", y10, "=", x10 + y10 );


//全加算器を使用

res = adder( x10, y10 );

printLn( "全加算器の計算結果: 2進数", res, "これを10進数に変換", parseInt( res, 2 ) );


}//onloadx()


//関数 3 / 8 ..

function adder( x10, y10 ) {

//全加算器を使って足し算を実行する


//桁の数だけ全加算器を使う

var ketaMax = Math.max( x10.toString( 2 ).length, y10.toString( 2 ).length );

var beforeCarry = 0; //前回の繰り上がり

var resultString = ""; //結果の2進数文字列


for( var i = 0; i < ketaMax + 1; i++ ) {

//その桁の数字を得る

var omomi = Math.pow( 2, i );

var binaryLetter1 = ( ( x10 & omomi ) > 0 ) ? 1 : 0; //その桁だけを&で取り出している

var binaryLetter2 = ( ( y10 & omomi ) > 0 ) ? 1 : 0; //2進数に変換してsubstrでもいいけど


//その桁の数字と前回の繰り上がりを全加算器に入れる。

var fa = fullAdder( binaryLetter1, binaryLetter2, beforeCarry );


resultString = fa.sub + resultString;

beforeCarry = fa.carry;

}

return resultString;

}


//関数 4 / 8 ..

function andKairo( x, y ) {

//AND回路はスイッチを直列につなげた回路である

if( x ) if( y ) return 1;


return 0;

}


//関数 5 / 8 ..

function orKairo( x, y ) {

//OR回路はスイッチを並列につなげた回路である

if( x ) return 1;

if( y ) return 1;


return 0;

}

//関数 6 / 8 ..

function notGate( x ) {

//NOTゲート(1と0を反転)

if( x ) return 0; else return 1;

}


//半加算器

//関数 7 / 8 ..

function halfAdder( x, y ) {

//半加算器は、AND回路、OR回路とNOTゲートで構成されている。

var and1 = andKairo( x, notGate( y ) );

var and2 = andKairo( notGate( x ), y );

var sub = orKairo( and1, and2 );

var carry = andKairo( x, y );


var object = new Object();

object.sub = sub;

object.carry = carry;


return object;

}


//全加算器

//関数 8 / 8 ..

function fullAdder( x, y, carry ) {

//全加算器は、半加算器とOR回路で構成されている。

var h1 = halfAdder( x, y );

var h2 = halfAdder( h1.sub, carry );


var object = new Object();

object.sub = h2.sub;

object.carry = orKairo( h1.carry, h2.carry );


return object;

}



</script>

<style>

</style>

</head>

<body onload="if( typeof preload !== 'undefined' ) preload(); else onloadx();">

Hello.<BR>

</body>

</html>


全加算器は計算の表面をマネしている?

以前、ハローワークの職業訓練の「電子回路エンジニア科」で、この全加算器の電子回路を実際に組んだことがあって、そのときも思いました。

「入力の x, y がともに1でその足し算の結果が "桁上り" だから、桁上り(carry)を1にしている」のではなく、「x, yともに1だから(1 and 1 の結果が1だから)というだけで桁上りを1にしている」…。

(上記プログラムの halfAdder 関数の var carry = andKairo( x, y ); の部分)

つまり、計算の結果を認知して「あぁ桁上りだな」と言って桁上りさせているのではなく、単に2つの入力をANDしてその結果を機械的に桁上りとして使っているだけです。

さらに言い換えると、入力を2つとも1に設定して、電源をパチンと入れると、回路がそうなっているから桁上りのランプが点灯する、というそれだけなんです。

carry だけではなく、足し算部分も、「x, y の組み合わせと足し算の結果が、XOR の真理値表と同じだから XOR を使おう」みたいになっています。(※プログラム中に XOR はありませんが、harfAdder 関数の sub を求めている部分は XOR と等価です) …それとも足し算というものが、根源的に、XOR の考え方を含むものなんでしょうか。だから XOR なんです、ということならわかるんですが。

全加算器の回路を見ていると、「筋道立てて計算しているんじゃなくて、計算の表面をマネしている」という感じがします。

コンピューターは本当は計算しているんじゃなくて、回路に電気を流しているだけなんです。すべての入力パターンを総ナメして、すべてのパターンに対応できる回路を上手に作った、という感じがします。(職業訓練の「電子回路エンジニア科」で、全加算器の回路を真理値表からカルノー図(Wikipedia カルノー図)を作成して電子回路に落とし込み、その電子回路を動かしていたとき、実にそういう感じ(「この回路、計算結果は正しいけど、何も考えてない!」という感じ)がしました)

パソコンがすべてそれで成り立っていると考えると「そんなもんでできているのか」と思ってしまいます。


全加算器の計算を1行にまとめてみると

足し算が論理演算だけで成り立っていることをもっと強調するために、全加算器の計算を1行にまとめてみます。(桁ごと)

細かいところを理解しないでも、ざっと見て「論理演算だけだなぁ」と思ってもらえればと思います。


2桁の2進数 x と y の足し算 x + y を行う(全加算器) (※答えは3桁になる場合がある)

x の1桁目を x1、2桁目を x2。

同様に y の1桁目を y1、2桁目を y2 とする。

答えの3桁目 = ( x2 AND y2 ) OR ( ( x2 XOR y2 ) AND ( ( x1 AND y1 ) OR ( ( x1 XOR y1 ) AND 0桁目からの繰上りは0 ) ) )

答えの2桁目 = ( x2 XOR y2 ) XOR ( ( x1 AND y1 ) OR ( ( x1 XOR y1 ) AND 0桁目からの繰上りは0 ) )

答えの1桁目 = ( x1 XOR y1 ) XOR 0桁目からの繰上りは0


x y OR  y
0 0 0
1 0 1
0 1 1
1 1 1
x y x AND y
0 0 0
1 0 0
0 1 0
1 1 1
x y x XOR y
0 0 0
1 0 1
0 1 1
1 1 0

クリックで閉じる


例:

2桁の2進数 11 と 01 の足し算 11 + 01 を行う( ※答えは 100 )

上の式の x1 は 1、x2 は 1。

y1 は 1、y2 は 0 です。


答えの3桁目 = ( 1 AND 0 ) OR ( ( 1 XOR 0 ) AND ( ( 1 AND 1 ) OR ( ( 1 XOR 1 ) AND 0 ) ) )

= ( 0 ) OR ( ( 1 ) AND ( ( 1 ) OR ( ( 0 ) AND 0 ) ) )

= 0 OR ( 1 AND ( 1 OR ( 0 ) ) ) = 0 OR ( 1 AND ( 1 ) ) = 0 OR ( 1 ) = 1


答えの2桁目 = ( 1 XOR 0 ) XOR ( ( 1 AND 1 ) OR ( ( 1 XOR 1 ) AND 0 ) )

= ( 1 ) XOR ( ( 1 ) OR ( ( 0 ) AND 0 ) )

= 1 XOR ( 1 OR ( 0 ) ) = 1 XOR ( 1 ) = 0


答えの1桁目 = ( 1 XOR 1 ) XOR 0 = ( 0 ) XOR 0 = 0


答えを順に並べると、100


以上のように、コンピューターの足し算は機械的な論理演算しかやっていません。

あなたの目の前のパソコンやスマートホン、タブレットで足し算をさせるとき、だいたい以上のような論理演算が行われているんだと考えてもらって問題ないと思います。

NANDだけをたくさん使って同じことをやっているという話を聞いたことがありますが Wikipedia NAND


(訪問者のどんなニーズと この記事がつながるか)


2019/4/23(火)

電子機器組み立て1級 受験を見送り -[kumitate]

電子機器組み立て1級ですが、ちょっと事情があって、受験は延期することにしました。

このホームページで電子機器組み立ての回路の記事を今後も掲載するかどうかは、基本的には予定していないと考えてください。(きまぐれでやるかもしれない程度です)


2019/4/21(日)

3DCGモデリング ~口の習作 -[modeling]

自分の唇を鏡を見て観察していて、唇の造形に一定の凹凸を発見したので3DCGのポリゴンで再現してみようと思いました。

fig.
▲再現したもの

「唇の造形の一定の凹凸」とは左図のように、上唇のVの字型に とがっている部分です。

図のように「面が4つくらいあるな」、と思って。

左の画像リンクをクリックすると 画像を拡大 します。



Vの字部分から始まり、続けて周りも作り始めました。

▲誰かがシーツにギューッと顔を押しあてたみたいだ


周りを作っている途中で「もっとニッコリとした口にしたい」と考え、空想で・あてずっぽうで 口の両脇(口角)を単純に引き上げてみたり、「もっと魅力的な口にしよう」と思ってやはり空想でいじりましたが、だんだん現実から離れていく感じがしました。

キャラクターモデリング造形力矯正バイブル第2版」(リンクはアマゾン)でも、下手な作品に対して、「空想で作ってる」、「資料を見て作ろう!」とか「くちびるはこんなもんだと思い込みで作ってしまう」などと言っています。

空想に基づいて試行錯誤していても 見る人を納得させられるようなものは作れず、いわば無意味な作業であって、結局はどこまでも とことん現実に基づかないと良いものはできないんだなと、習作を作っていて思いました。


fig.
▲本のモデルに基づいている

こういうカワイイ顔を本を見ながら作っているんですが、これはあくまでも本のモデルにならって作って出来ているのであって、鏡や資料を見て自分の力で作っているのではない ということを忘れないでいたほうが良いでしょう。

  1. 空想に基づく(初心NG)、
  2. 本など、誰かの教えに基づく(初心)、
  3. 自分の顔や資料に基づく(一人前)。


それにしても、本のおかげで、何も見ないで上図 習作のようなものを作れるようになったのは、すごいありがたいなと思います。

左の画像リンクをクリックすると 画像を拡大 します。





2019/4/20(土)

3DCGモデリング ~ リアルモデリングのアニメーション -[modeling]

各ボタンをクリックすると下図の画像が切り替わります。

しっかり閉じる
むっと
ノーマル
通常状態
くちあけ1
「あっ」
くちあけ2
驚愕!!という感じ
くちあけ3
鼻垂らしたら
マコトちゃん

参考までに Shade3D のアニメ設定手順を記載しておきます:

  1. 「ボーン」という形状をアゴ関節部分に配置する。(上画像の口の中に入っているやつ)
  2. あたまの形状で、可動させたい頂点を複数選択する。
  3. 表示 メニュー>スキン を選び、スキン設定画面を表示させる。(聞かれたら "頂点ブレンド" のほうを選ぶ)
  4. バインド ボタンを押す。
    (スキン設定画面をスクロールするとバインドされた頂点だけ 1.0 になっている)
  5. この状態で、ボーンを選択し、統合パレット>情報 画面で Z のスライダを動かすとその頂点が動く。

リアルな3DCGで顔や体が肉があるみたいにリアルに動いているのを見たとき、「いったいどうやっているんだろう」と私も思っていましたが、こんな感じでやっていたんですかね。


(訪問者のどんなニーズと この記事がつながるか)


3DCGモデリング ~ 唇部分の作りこみ -[modeling]

キャラクターモデリング造形力矯正バイブル第2版」(リンクはアマゾン)を読み進めて、Lesson3 - Step5「パーツの作りこみ - 唇の厚みを作る」(P107)を行ったところです。

上の大きな画像を繰り返しクリックすると、ビフォーアフターを確認できます。(JavaScript)

唇部分を奥のほうへ「押し出し」しただけで、厚みを表現できてしまうというのが驚きでした。

OpenSubdiv(「トイ・ストーリー」のPIXAR社が開発して一般に広く公開された技術)の恩恵なんでしょうね。


「押し出し」について-[modeling]

▼唇部分を選択し、


▼奥のほうへ「押し出し」 (そういうコマンドがあります→Shade3Dウィンドウの画像

それだけで唇部分の厚みとなった。(画像の左側を見ると、くちびるが丸みを おびています)


え?これだけ?って感じですよね。

最近の3DCGのモデリングが、OpenSubdiv によってだいぶラクラクになっているというのがわかりますね。

昔はこういう厚みは、小さなポリゴン(面)を1つ1つ手作業で動かして作っていたんでしょうね。


(訪問者のどんなニーズと この記事がつながるか)


2019/4/18(木)

3DCGモデリング ~ 試しに髪の毛をかぶせると-[modeling]

試しに今モデリング中のモデルに、下の記事で紹介した髪の毛をそのままかぶせてみました。


▲今モデリング中のモデル。
▲髪の毛をそのままかぶせてみた。
▲見づらいので背景を透明にしてみた。

ちょっと人形っぽいけど、髪の毛はもうちょっと工夫すれば良いものになるかもしれません。


2019/4/6(土)

風疹の予防接種 その後 -[health]

それで風疹の予防接種を受けに行ったところ、先週行った抗体検査の結果で「抗体あり」ということだったので、予防接種は必要ないと言われました。

たぶん子供のころに風疹に かかっていたのかもしれません。(そのとき身体が抗体を作った)

…患者さんの悪いところは、ここまできて予防接種してもらわないと、どこか満足しないところかな。


(訪問者のどんなニーズと この記事がつながるか)


日立さくらまつり -[dekake]

予防接種へ出かけた足で、日立駅前の桜が見ごろだと思うので行ってきました。

「日立さくらまつり」というお祭りになっています。

日立さくらまつり
「日本のさくら名所百選」にも選出されているJR日立駅前から延びる平和通りとかみね公園。
今年もたくさんの観光客で盛り上がること間違いなしのスポットです。
https://www.ibarakiguide.jp/seasons/sakura/s_hitachi.html より


日立駅前 平成通り の入り口

さくら1

さくら2

山車。国内ではじめて重要有形民俗文化財と重要無形民俗文化財に指定され、ユネスコ無形文化遺産にも登録されてるとか。

和太鼓をドンドン鳴らし、お菓子の袋か何かをたくさん投げて「イヨー!」といった掛け声を出して、駅前通りを練り歩いていました。

練り歩き2

駅前通り歩道橋から撮影。
咲き具合は9割でした。

和太鼓 (山車の公開前)

私はちょっと疲れたので名物の山車は見ないで帰りました。

駅前のヨーカドーで「新しい帽子」と、何かで賞を取ったという「チーズケーキ」と出店の「オムそば」を買いました。

何か買って帰らないと、家に帰ってから さびしい気がしたので。


(訪問者のどんなニーズと この記事がつながるか)


3DCGモデリング -[modeling]

家に帰ってから、オムそば などを食べつつ、モデリングを始めました。

キャラクターモデリング造形力矯正バイブル第2版」(リンクはアマゾン)を読み進めて、前回よりも良くなってきました。

▼前回
▼今回

左のモデルでも満足してたんですが、本のステップを進めて右のモデルを見ると全然違いますね。

だいぶ人間らしくなってきました。

髪の毛をつけてあげれば、さぞかしかわいくなるでしょうに。


fig.
▲本のおかげ

左図はモデリング中の画面です。

左図の右側のカクカクのポリゴンが左側でスムーズになっているのは、Shade3D ver 15.0 から機能追加された、「サブディビジョンサーフェス - OpenSubdiv」を設定しているからです。その設定方法は、、

メッシュ形状(ポリゴン形状)を選択して、形状情報 ウィンドウの 分割手法 プルダウンメニューで OpenSubdiv を選べば、レンダリングしたときにスムーズになります。それだけです。

Shade でもここまでできるんだなぁ…と認識を新たにしました。

左の画像リンクをクリックすると 画像を拡大 します。



Shade3Dが無理なひとは、代わりにメタセコイア無料版

なお、Shade3Dは2018年の暮れあたりから販売形態が「サブスクリプション」のみになってしまいました。

一番安い Shade3D の Basic グレードは、今までは価格が1万円程度でアップグレードは5,000円くらいでしたが、新しい「サブスクリプション」では1年目に19,800円を支払い、以後毎年9,900円を支払い続けるという形になりました。

これではパッケージを買い取ることができず、「利用権を借りる」ことしかできません。値段も倍額になってしまいました。

こうなると、もはや Shade3D はホビーユーザーには手が届かないのではと思います。


fig.
▲上がメタセコ。下がShade3D

そこで、代わりに使えそうなものとして Metasequoia4(公式サイト) が良いかなと思います。

無料の状態で、ここで紹介したサブディビジョンサーフェスも使えます(左図)。

無料版では機能制限でレイトレーシング(光計算による綺麗な仕上げ描画)が使えませんが、左図のように、メタセコイア無料版のサブディビジョンサーフェス(左図の右上)と、shade3Dのレイトレーシング画面のサブディビジョンサーフェス(右下)がほぼ同じなので、サブディビジョンサーフェスを使うことが目的(つまりリアルモデリングが目的)なら、有料版(5,400円)は後で必要になってからの購入でも良いのではと思います。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲メタセコでの設定方法

なお、メタセコイアのサブディビジョンサーフェスの設定方法は、

パネル メニュー>オブジェクトパネル を選び、オブジェクトパネルを表示させ、

左図のように、オブジェクト パネル上で対象のオブジェクトを右クリックし、OpenSubdiv曲面をポイントし、 4 などを選べば OK です。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲グリッドを消す設定を行う…

また、無料版はレイトレーシングのレンダリングができないので、どうも最終的な仕上げの画像出力もない?みたいです。 そこで、左図の設定のように、画面上の歯車アイコンをクリックし、

  • ZX平面 のチェックを外す
  • X/Y/Z軸 のチェックを外す
  • 曲面ワイヤー表示 のチェックを外す

のようにすれば、画面上のグリッド(補助線)がすべて消えるので…

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲キャプチャして保存

画面上の 透視 のボタン>キャプチャして保存 で下図のような画像が得られます。

左の画像リンクをクリックすると 画像を拡大 します。




▼メタセコイア無料版で得られる画像例(OpenSubdiv 分割 16)


髪の毛について

あと、Shade3D の Basic グレードには髪の毛を作る機能は無いので、ポリゴンにテクスチャを貼って髪の毛を表現することになります。その方法を説明したサイトを3つ紹介します。


下図は左右ともに上記手法で作成した髪の毛です。

▼Shade3D Basic の場合

▼メタセコイア無料版 の場合
Shadeはこの方法でどこまでリアルっぽくできるだろうか…
メタセコ無料版のため、編集中の画面のキャプチャしかできず、テクスチャの細かい設定もできず、いろいろ問題のある状態。


まぁ、モデリングソフトそれぞれで、いろいろな髪の毛の表現、説明があります。


メタセコイアはちょっと使っていて、画面や操作性が「いい感じだな」と思いました。

次期バージョン(Metasequoia5)あたりで もっと機能向上されれば、良いかもしれません。


話を戻し…

fig.
▲本の表紙

本のとおりに進めていくと、最終的にコレ(左図)になるらしいです。

でも、私は私のオリジナリティを出したいので、少しずつアレンジを加えながら進めています。

左の画像リンクをクリックすると 画像を拡大 します。




(訪問者のどんなニーズと この記事がつながるか)


2019/4/5(金)

風疹の予防接種 -[health]

最近、どこかの若いお母さんが「風疹の予防接種を受けてくれ」と強く訴えているので、前々から予防接種を受けたいと思っていました。

風疹の伝染力はこういう感じです。

インフルエンザ < 風疹 < 水痘(みずぼうそう)、麻疹(はしか)、ノロウイルス感染症


妊娠中(妊娠10週まで)の女性が風疹に感染すると、生まれてくる赤ちゃんは9割の確率で病気を持って生まれます。

(心臓の奇形、難聴、白内障など。※白内障は目の水晶体がにごって見えづらくなる病気)

予防接種さえ受けてくれれば、風疹が広まらず、生まれてくる赤ちゃんが病気にならずに済むということです。


子供のころに風疹の予防接種を受けている人と受けていない人がいて、「1979年(昭和54年)4月1日以前に生まれた男性」は受けていないそうです。ほかにも予防接種していない世代があります。(Wikipedia 「風疹」 - 日本でのワクチン接種より)

私は1974年生まれなので予防接種してないわけです。


先週、3/28(金)に郵便で「風疹予防接種無料のクーポン券」が国かどこかからタイミング良く届きました。

その書類を見ると、どうも「抗体」の有無で予防接種の必要の有無が変わるらしいです。そのため、

通院1回目: 採血して、抗体の有無を調べる。

通院2回目: 抗体がない場合、予防接種を行う。

という段取りになります。1回の通院で予防接種までやってくれるところもあるんでしょうか、わかりません。


それでクーポン券が届いた翌日に抗体検査に行ってきました。採血だけ行いました。

「風疹の予防接種をしたい」と聞いて病院側は「ワクチン在庫ある?」とスタッフ間で話していました。病院へ行っても在庫がなければ予防接種できないということです。(在庫はあったみたいです)


そして明日4/6(土)、抗体検査の結果が出ていると思うので、また病院へ行き、必要だったら予防接種を受けてきます。

それで誰かの赤ちゃんが病気にならずにすむなら、良いことしたかもしれません。


(訪問者のどんなニーズと この記事がつながるか)


webappsrcの確認

1. %%com.webapp.src:/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



2. <code>
%%com.webapp.src:/webappsrccheck.html%%
</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



3.
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



4. <code>
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



5. リンクで
src?webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く

6. リンクで
src?webappsrccheck2.html,webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く